home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ETO Development Tools 4
/
ETO Development Tools 4.iso
/
Tools - Objects
/
MacApp
/
MacApp 3.0a2
/
CPlusIncludes
/
Processes.h
< prev
next >
Wrap
Text File
|
1991-05-01
|
5KB
|
187 lines
/************************************************************
Created: Sunday, January 6, 1991 at 9:42 PM
Processes.h
C Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1989-1990
All rights reserved
************************************************************/
#ifndef __PROCESSES__
#define __PROCESSES__
#ifndef __TYPES__
#include <Types.h>
#endif
#ifndef __EVENTS__
#include <Events.h>
#endif
#ifndef __FILES__
#include <Files.h>
#endif
/* type for unique process identifier */
struct ProcessSerialNumber {
unsigned long highLongOfPSN;
unsigned long lowLongOfPSN;
};
typedef struct ProcessSerialNumber ProcessSerialNumber;
typedef ProcessSerialNumber *ProcessSerialNumberPtr;
enum {
/*************************************************************************
* Process identifier.
************************************************************************
Various reserved process serial numbers. */
kNoProcess = 0,
kSystemProcess = 1,
kCurrentProcess = 2
};
/**********************************************************************************************************************************************
* Definition of the parameter block passed to _Launch.
*************************************************************************
* Typedef and flags for launchControlFlags field */
typedef unsigned short LaunchFlags;
enum {
/*************************************************************************
* Definition of the parameter block passed to _Launch.
*************************************************************************/
launchContinue = 0x4000,
launchNoFileFlags = 0x0800,
launchUseMinimum = 0x0400,
launchDontSwitch = 0x0200,
launchAllow24Bit = 0x0100,
launchInhibitDaemon = 0x0080
};
/* Format for first AppleEvent to pass to new process. The size of the overall
* buffer variable: the message body immediately follows the messageLength.
*/
struct AppParameters {
EventRecord theMsgEvent;
unsigned long eventRefCon;
unsigned long messageLength;
};
typedef struct AppParameters AppParameters;
typedef AppParameters *AppParametersPtr;
/* Parameter block to _Launch */
struct LaunchParamBlockRec {
unsigned long reserved1;
unsigned short reserved2;
unsigned short launchBlockID;
unsigned long launchEPBLength;
unsigned short launchFileFlags;
LaunchFlags launchControlFlags;
FSSpecPtr launchAppSpec;
ProcessSerialNumber launchProcessSN;
unsigned long launchPreferredSize;
unsigned long launchMinimumSize;
unsigned long launchAvailableSize;
AppParametersPtr launchAppParameters;
};
typedef struct LaunchParamBlockRec LaunchParamBlockRec;
typedef LaunchParamBlockRec *LaunchPBPtr;
enum {
/* Set launchBlockID to extendedBlock to specify that extensions exist.
* Set launchEPBLength to extendedBlockLen for compatibility.*/
#define extendedBlock ((unsigned short)'LC')
#define extendedBlockLen (sizeof(LaunchParamBlockRec) - 12)
/*************************************************************************
* Definition of the information block returned by GetProcessInformation
************************************************************************
Bits in the processMode field */
modeDeskAccessory = 0x00020000,
modeMultiLaunch = 0x00010000,
modeNeedSuspendResume = 0x00004000,
modeCanBackground = 0x00001000,
modeDoesActivateOnFGSwitch = 0x00000800,
modeOnlyBackground = 0x00000400,
modeGetFrontClicks = 0x00000200,
modeGetAppDiedMsg = 0x00000100,
mode32BitCompatible = 0x00000080,
modeHighLevelEventAware = 0x00000040,
modeLocalAndRemoteHLEvents = 0x00000020,
modeStationeryAware = 0x00000010,
modeUseTextEditServices = 0x00000008
};
/* Record returned by GetProcessInformation */
struct ProcessInfoRec {
unsigned long processInfoLength;
StringPtr processName;
ProcessSerialNumber processNumber;
unsigned long processType;
OSType processSignature;
unsigned long processMode;
Ptr processLocation;
unsigned long processSize;
unsigned long processFreeMem;
ProcessSerialNumber processLauncher;
unsigned long processLaunchDate;
unsigned long processActiveTime;
FSSpecPtr processAppSpec;
};
typedef struct ProcessInfoRec ProcessInfoRec;
typedef ProcessInfoRec *ProcessInfoRecPtr;
#ifdef __cplusplus
extern "C" {
#endif
#pragma parameter __D0 LaunchApplication(__A0)
pascal OSErr LaunchApplication(const LaunchParamBlockRec& LaunchParams)
= 0xA9F2;
pascal OSErr LaunchDeskAccessory(const FSSpec& pFileSpec,ConstStr255Param pDAName)
= {0x3F3C,0x0036,0xA88F};
pascal OSErr GetCurrentProcess(ProcessSerialNumber& PSN)
= {0x3F3C,0x0037,0xA88F};
pascal OSErr GetFrontProcess(ProcessSerialNumber& PSN)
= {0x70FF,0x2F00,0x3F3C,0x0039,0xA88F};
pascal OSErr GetNextProcess(ProcessSerialNumber& PSN)
= {0x3F3C,0x0038,0xA88F};
pascal OSErr GetProcessInformation(const ProcessSerialNumber& PSN,ProcessInfoRecPtr info)
= {0x3F3C,0x003A,0xA88F};
pascal OSErr SetFrontProcess(const ProcessSerialNumber& PSN)
= {0x3F3C,0x003B,0xA88F};
pascal OSErr WakeUpProcess(const ProcessSerialNumber& PSN)
= {0x3F3C,0x003C,0xA88F};
pascal OSErr SameProcess(const ProcessSerialNumber& PSN1,const ProcessSerialNumber& PSN2,
Boolean& result)
= {0x3F3C,0x003D,0xA88F};
#ifdef __cplusplus
}
#endif
#endif